import UIKit

/**
    B站：https://www.bilibili.com/video/BV144411C7Gg?p=14

    第14课

        1、函数定义
        2、函数参数名称问题
        3、assert断言
*/


func test() {
    print("test(")
}
test()


func test3(name: String) -> String {
    return name
}
print(test3(name: "hello world"))

func test4(name: String...) -> Void {
    print("type-of", type(of: name))
    for item in name {
        print(item)
    }
}
test4(name: "a", "b", "1")

print("---------------2函数参数名称问题---------------")

/**
 outname 外部名称
 inname 内部名称
 */
func defi(outname inname: String) {
    // 方法内仅 可使用，内部名称
    print(inname)
}
// 调用方法，使用 外部名称
defi(outname: "hello")



func defi2(outname _:String) {
    // 忽略 内部名称，那么 不能内部操作
    print(NCARGS)
}


func defi3(_ log:String) {
    print(log)
}

// 忽略 外部名称
defi3("ssss")

/**
 外部名称，用于哪里呢？
 1. NSLog() 通用打印日志
 2、TTInt() 把 字符串 转 int 类型
 */



print("---------------3 断言---------------")
func play(params: Int) {
    if (params < 10) {
        assert(false, "停止继续运行")
    }
    print("值 = " + String(params))
}

//play(params: 4) // false 停止继续运行 停止继续运行  // 可切换方便 被注释掉了
//play(params: 20) // 可切换方便 被注释掉了
